From 05d640922dd52a462b99f3ae64ae1da9375e9943 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Wed, 20 Dec 2006 12:04:38 +0000 Subject: [PATCH] [XEN] Don't pass spurious fast-path faults to the guest at all. Instead, retry and get a sensible fault from the hardware next time. Signed-off-by: Tim Deegan --- xen/arch/x86/mm/shadow/multi.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index 5aabce5469..cd06ca00bd 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2645,14 +2645,11 @@ static int sh_page_fault(struct vcpu *v, else { /* This should be exceptionally rare: another vcpu has fixed - * the tables between the fault and our reading the l1e. - * Fall through to the normal fault handing logic */ + * the tables between the fault and our reading the l1e. + * Retry and let the hardware give us the right fault next time. */ perfc_incrc(shadow_fault_fast_fail); - SHADOW_PRINTK("fast path false alarm!\n"); - /* Don't pass the reserved-bit bit: if we look at the fault - * below and decide to pass it to the guest, the reserved-bit - * bit won't make sense there. */ - regs->error_code &= ~PFEC_reserved_bit; + SHADOW_PRINTK("fast path false alarm!\n"); + return EXCRET_fault_fixed; } } #endif /* SHOPT_FAST_FAULT_PATH */ -- 2.30.2